package com.sztx.pay.center.rpc.api.domain.response;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@SuppressWarnings("serial")
public class OrderB2C implements Serializable{

	/**
	 * B2C交易订单ID(业务订单号)
	 */
	private String tradeOrderId;

	/**
	 * 外部订单号
	 */
	private String orderId;

	/**
	 * 购买用户ID
	 */
	private String payerUserId;

	/**
	 * 购买用户账户
	 */
	private String payerUserAct;

	/**
	 * 商户ID
	 */
	private String payeeUserId;

	private String payeeUserAct;

	/**
	 * 关联ID，绑卡关联ID
	 */
	private String payerBindNo;

	/**
	 * 银行编号
	 */
	private String payBankId;

	/**
	 * 购买价格
	 */
	private BigDecimal tradeAmount;

	/**
	 * 商品名称
	 */
	private String goodsName;

	/**
	 * 担保类型
	 */
	private String guaranteeTypeStr;

	/**
	 * 实际金额
	 */
	private BigDecimal payAmount;

	/**
	 * 订单类型
	 */
	private String orderTypeStr;

	/**
	 * 来源IP
	 */
	private String sourceIp;

	/**
	 * 订单状态
	 */
	private String orderStatus;

	/**
	 * 订单状态描述
	 */
	private String orderStatusStr;

	/**
	 * 订单生成时间
	 */
	private Date addTime;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 实际支付时间
	 */
	private Date payTime;

	/**
	 * 确认收货时间
	 */
	private Date sureReceiveTime;

	/**
	 * 内部状态
	 */
	private String innerStatusStr;

	/**
	 * 渠道类型
	 */
	private String channelTypeStr;

	/**
	 * 支付类型
	 */
	private String payTypeStr;

	/**
	 * 前端回调通知URL
	 */
	private String notifyUrl;

	/**
	 * 后端回调返回URL
	 */
	private String returnUrl;

	/**
	 * 订单渠道
	 */
	private String orderChannelStr;

	/**
	 * 描述
	 */
	private String goodsDetail;

	/**
	 * 备注
	 */
	private String attach;

	/**
	 * 下单时间
	 */
	private Date orderTime;

	/**
	 * 失效时间
	 */
	private Date expireTime;

	/**
	 * 用户openId
	 */
	private String openId;

	/**
	 * 手续费fee
	 */
	private BigDecimal fee;

	/**
	 * 平台渠道id
	 */
	private String platChannelId;
	
	/**
	 * 平台渠道id描述
	 */
	private String platChannelIdDesc;
	
	/**
	 * 业务类型
	 */
	private String businessType;
	
	/**
	 * 商品类别
	 */
	private String productTypeStr;
	
	/**
	 * 风控参数
	 */
	private String riskParams;
	
	/**
	 * 业务类型描述
	 * 
	 */
	private String businessTypeDes;

	/**
	 * 订单结算时间
	 */
	private Date settleTime;
	/*========= 添加额外字段 ==========*/
	/**
	 * 退款金额 [当该B2C订单进行退款后就会有退款金额]
	 */
	private BigDecimal refundAmount;

	public String getPlatChannelIdDesc() {
		return platChannelIdDesc;
	}

	public void setPlatChannelIdDesc(String platChannelIdDesc) {
		this.platChannelIdDesc = platChannelIdDesc;
	}

	/**
	 * @return the tradeOrderId
	 */
	public String getTradeOrderId() {
		return tradeOrderId;
	}

	/**
	 * @param tradeOrderId the tradeOrderId to set
	 */
	public void setTradeOrderId(String tradeOrderId) {
		this.tradeOrderId = tradeOrderId;
	}

	/**
	 * @return the orderId
	 */
	public String getOrderId() {
		return orderId;
	}

	/**
	 * @param orderId the orderId to set
	 */
	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	/**
	 * @return the payerUserId
	 */
	public String getPayerUserId() {
		return payerUserId;
	}

	/**
	 * @param payerUserId the payerUserId to set
	 */
	public void setPayerUserId(String payerUserId) {
		this.payerUserId = payerUserId;
	}

	/**
	 * @return the payerUserAct
	 */
	public String getPayerUserAct() {
		return payerUserAct;
	}

	/**
	 * @param payerUserAct the payerUserAct to set
	 */
	public void setPayerUserAct(String payerUserAct) {
		this.payerUserAct = payerUserAct;
	}

	/**
	 * @return the payeeUserId
	 */
	public String getPayeeUserId() {
		return payeeUserId;
	}

	/**
	 * @param payeeUserId the payeeUserId to set
	 */
	public void setPayeeUserId(String payeeUserId) {
		this.payeeUserId = payeeUserId;
	}

	/**
	 * @return the payeeUserAct
	 */
	public String getPayeeUserAct() {
		return payeeUserAct;
	}

	/**
	 * @param payeeUserAct the payeeUserAct to set
	 */
	public void setPayeeUserAct(String payeeUserAct) {
		this.payeeUserAct = payeeUserAct;
	}

	public String getPayerBindNo() {
		return payerBindNo;
	}

	public void setPayerBindNo(String payerBindNo) {
		this.payerBindNo = payerBindNo;
	}

	public String getPayBankId() {
		return payBankId;
	}

	public void setPayBankId(String payBankId) {
		this.payBankId = payBankId;
	}

	/**
	 * @return the tradeAmount
	 */
	public BigDecimal getTradeAmount() {
		return tradeAmount;
	}

	/**
	 * @param tradeAmount the tradeAmount to set
	 */
	public void setTradeAmount(BigDecimal tradeAmount) {
		this.tradeAmount = tradeAmount;
	}

	/**
	 * @return the goodsName
	 */
	public String getGoodsName() {
		return goodsName;
	}

	/**
	 * @param goodsName the goodsName to set
	 */
	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}

	/**
	 * @return the guaranteeTypeStr
	 */
	public String getGuaranteeTypeStr() {
		return guaranteeTypeStr;
	}

	/**
	 * @param guaranteeTypeStr the guaranteeTypeStr to set
	 */
	public void setGuaranteeTypeStr(String guaranteeTypeStr) {
		this.guaranteeTypeStr = guaranteeTypeStr;
	}

	/**
	 * @return the payAmount
	 */
	public BigDecimal getPayAmount() {
		return payAmount;
	}

	/**
	 * @param payAmount the payAmount to set
	 */
	public void setPayAmount(BigDecimal payAmount) {
		this.payAmount = payAmount;
	}

	/**
	 * @return the orderTypeStr
	 */
	public String getOrderTypeStr() {
		return orderTypeStr;
	}

	/**
	 * @param orderTypeStr the orderTypeStr to set
	 */
	public void setOrderTypeStr(String orderTypeStr) {
		this.orderTypeStr = orderTypeStr;
	}

	/**
	 * @return the sourceIp
	 */
	public String getSourceIp() {
		return sourceIp;
	}

	/**
	 * @param sourceIp the sourceIp to set
	 */
	public void setSourceIp(String sourceIp) {
		this.sourceIp = sourceIp;
	}

	public String getOrderStatus() {
		return orderStatus;
	}

	public void setOrderStatus(String orderStatus) {
		this.orderStatus = orderStatus;
	}

	/**
	 * @return the orderStatusStr
	 */
	public String getOrderStatusStr() {
		return orderStatusStr;
	}

	/**
	 * @param orderStatusStr the orderStatusStr to set
	 */
	public void setOrderStatusStr(String orderStatusStr) {
		this.orderStatusStr = orderStatusStr;
	}

	/**
	 * @return the addTime
	 */
	public Date getAddTime() {
		return addTime;
	}

	/**
	 * @param addTime the addTime to set
	 */
	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}

	/**
	 * @return the updateTime
	 */
	public Date getUpdateTime() {
		return updateTime;
	}

	/**
	 * @param updateTime the updateTime to set
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**
	 * @return the payTime
	 */
	public Date getPayTime() {
		return payTime;
	}

	/**
	 * @param payTime the payTime to set
	 */
	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}

	/**
	 * @return the sureReceiveTime
	 */
	public Date getSureReceiveTime() {
		return sureReceiveTime;
	}

	/**
	 * @param sureReceiveTime the sureReceiveTime to set
	 */
	public void setSureReceiveTime(Date sureReceiveTime) {
		this.sureReceiveTime = sureReceiveTime;
	}

	/**
	 * @return the innerStatusStr
	 */
	public String getInnerStatusStr() {
		return innerStatusStr;
	}

	/**
	 * @param innerStatusStr the innerStatusStr to set
	 */
	public void setInnerStatusStr(String innerStatusStr) {
		this.innerStatusStr = innerStatusStr;
	}

	/**
	 * @return the channelTypeStr
	 */
	public String getChannelTypeStr() {
		return channelTypeStr;
	}

	/**
	 * @param channelTypeStr the channelTypeStr to set
	 */
	public void setChannelTypeStr(String channelTypeStr) {
		this.channelTypeStr = channelTypeStr;
	}

	/**
	 * @return the payTypeStr
	 */
	public String getPayTypeStr() {
		return payTypeStr;
	}

	/**
	 * @param payTypeStr the payTypeStr to set
	 */
	public void setPayTypeStr(String payTypeStr) {
		this.payTypeStr = payTypeStr;
	}

	/**
	 * @return the notifyUrl
	 */
	public String getNotifyUrl() {
		return notifyUrl;
	}

	/**
	 * @param notifyUrl the notifyUrl to set
	 */
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	/**
	 * @return the returnUrl
	 */
	public String getReturnUrl() {
		return returnUrl;
	}

	/**
	 * @param returnUrl the returnUrl to set
	 */
	public void setReturnUrl(String returnUrl) {
		this.returnUrl = returnUrl;
	}

	/**
	 * @return the orderChannelStr
	 */
	public String getOrderChannelStr() {
		return orderChannelStr;
	}

	/**
	 * @param orderChannelStr the orderChannelStr to set
	 */
	public void setOrderChannelStr(String orderChannelStr) {
		this.orderChannelStr = orderChannelStr;
	}

	/**
	 * @return the goodsDetail
	 */
	public String getGoodsDetail() {
		return goodsDetail;
	}

	/**
	 * @param goodsDetail the goodsDetail to set
	 */
	public void setGoodsDetail(String goodsDetail) {
		this.goodsDetail = goodsDetail;
	}

	/**
	 * @return the attach
	 */
	public String getAttach() {
		return attach;
	}

	/**
	 * @param attach the attach to set
	 */
	public void setAttach(String attach) {
		this.attach = attach;
	}

	/**
	 * @return the orderTime
	 */
	public Date getOrderTime() {
		return orderTime;
	}

	/**
	 * @param orderTime the orderTime to set
	 */
	public void setOrderTime(Date orderTime) {
		this.orderTime = orderTime;
	}

	/**
	 * @return the expireTime
	 */
	public Date getExpireTime() {
		return expireTime;
	}

	/**
	 * @param expireTime the expireTime to set
	 */
	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}

	/**
	 * @return the openId
	 */
	public String getOpenId() {
		return openId;
	}

	/**
	 * @param openId the openId to set
	 */
	public void setOpenId(String openId) {
		this.openId = openId;
	}

	/**
	 * @return the fee
	 */
	public BigDecimal getFee() {
		return fee;
	}

	/**
	 * @param fee the fee to set
	 */
	public void setFee(BigDecimal fee) {
		this.fee = fee;
	}

	/**
	 * @return the platChannelId
	 */
	public String getPlatChannelId() {
		return platChannelId;
	}

	/**
	 * @param platChannelId the platChannelId to set
	 */
	public void setPlatChannelId(String platChannelId) {
		this.platChannelId = platChannelId;
	}

	/**
	 * @return the businessType
	 */
	public String getBusinessType() {
		return businessType;
	}

	/**
	 * @param businessType the businessType to set
	 */
	public void setBusinessType(String businessType) {
		this.businessType = businessType;
	}

	/**
	 * @return the productTypeStr
	 */
	public String getProductTypeStr() {
		return productTypeStr;
	}

	/**
	 * @param productTypeStr the productTypeStr to set
	 */
	public void setProductTypeStr(String productTypeStr) {
		this.productTypeStr = productTypeStr;
	}

	/**
	 * @return the riskParams
	 */
	public String getRiskParams() {
		return riskParams;
	}

	/**
	 * @param riskParams the riskParams to set
	 */
	public void setRiskParams(String riskParams) {
		this.riskParams = riskParams;
	}

	/**
	 * @return the businessTypeDes
	 */
	public String getBusinessTypeDes() {
		return businessTypeDes;
	}

	/**
	 * @param businessTypeDes the businessTypeDes to set
	 */
	public void setBusinessTypeDes(String businessTypeDes) {
		this.businessTypeDes = businessTypeDes;
	}

	public Date getSettleTime() {
		return settleTime;
	}

	public void setSettleTime(Date settleTime) {
		this.settleTime = settleTime;
	}

	public BigDecimal getRefundAmount() {
		return refundAmount;
	}

	public void setRefundAmount(BigDecimal refundAmount) {
		this.refundAmount = refundAmount;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "OrderB2C [tradeOrderId=" + tradeOrderId + ", orderId="
				+ orderId + ", payerUserId=" + payerUserId + ", payerUserAct="
				+ payerUserAct + ", payeeUserId=" + payeeUserId
				+ ", payeeUserAct=" + payeeUserAct + ", payerBindNo=" + payerBindNo
				+ ", payBankId=" + payBankId + ", tradeAmount=" + tradeAmount
				+ ", goodsName=" + goodsName + ", guaranteeTypeStr="
				+ guaranteeTypeStr + ", payAmount=" + payAmount
				+ ", orderTypeStr=" + orderTypeStr + ", sourceIp=" + sourceIp
				+ ", orderStatusStr=" + orderStatusStr + ", addTime=" + addTime
				+ ", updateTime=" + updateTime + ", payTime=" + payTime
				+ ", sureReceiveTime=" + sureReceiveTime + ", innerStatusStr="
				+ innerStatusStr + ", channelTypeStr=" + channelTypeStr
				+ ", payTypeStr=" + payTypeStr + ", notifyUrl=" + notifyUrl
				+ ", returnUrl=" + returnUrl + ", orderChannelStr="
				+ orderChannelStr + ", goodsDetail=" + goodsDetail
				+ ", attach=" + attach + ", orderTime=" + orderTime
				+ ", expireTime=" + expireTime + ", openId=" + openId
				+ ", fee=" + fee + ", platChannelId=" + platChannelId
				+ ", businessType=" + businessType + ", productTypeStr="
				+ productTypeStr + ", riskParams=" + riskParams
				+ ", businessTypeDes=" + businessTypeDes 
				+ ", refundAmount=" + refundAmount +"]";
	}
	
	
}
